import Vue from "vue";
import Vuex from "vuex"; //引入vuex

Vue.use(Vuex); //运用该插件

export default new Vuex.Store({
  state: {
    count: 5,
  }, //存储数据(状态)的地方
  getters: {
    //派生属性：类似vue里面的计算属性(只有get方法)  computed
    filter(state) {
      if (state.count > 0 && state.count < 6) {
        return "不及格";
      } else if (state.count >= 6 && state.count < 8) {
        return "良好";
      } else if (state.count >= 8 && state.count <= 10) {
        return "秀儿";
      } else {
        return "好开心";
      }
    },
  },
  mutations: {
    //和commit配套使用
    //存储方法的地方(类似vue里面的methods) 存放普通方法-对state的数据的管理-增删改查
    add(state, payload) {
      //payload 载荷
      // state.count++;
      // state.count += num;
      state.count += payload.num1;
      // console.log(payload, 888);
    },
    cut(state, num) {
      // state.count--;
      state.count -= num;
    },
  },
  actions: {
    //和dispatch配对使用
    addItem(context, payload) {
      //context== store
      context.commit("add", payload);
    },
    cutItem({ commit }, data) {
      commit("cut", data);
    },
  }, //存储方法的地方(类似vue里面的methods-存放逻辑复杂或异步代码)
  modules: {}, //模块化开发
});
